package br.com.faculdade.infrastructure.dao;

import br.com.faculdade.infrastructure.entity.TipoApartamento;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.TransactionPropagationType;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.log.Log;

/**
 * Classe de acesso aos dados de Tipo do apartamento
 * @author Kirmaier
 */
@AutoCreate
@Name("tipoApartamentoDAO")
@Transactional(TransactionPropagationType.SUPPORTS)
public class TipoApartamentoDAO implements Serializable {

    @In
    private Session reservaDB;
    @Logger
    private Log log;

    public TipoApartamento obterPorId(Integer tipoApartamentoSelecionado) {
        log.info("Buscando tipo apartamento por ID");

        return (TipoApartamento) reservaDB.get(TipoApartamento.class, tipoApartamentoSelecionado);
    }

    public List<TipoApartamento> obterTodos() {
        log.info("Buscando todos");

        Criteria c = reservaDB.createCriteria(TipoApartamento.class);
        c.addOrder(Order.asc("idtipo"));

        return c.list();
    }
}
